home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 8 / Night Owl CD-ROM (NOPV8) (Night Owl Publisher) (1993).ISO / 047a / probots.arj / ORBIT2.PR < prev    next >
Text File  |  1990-12-16  |  2KB  |  89 lines

  1. Procedure Orbit2;
  2.  
  3. Var
  4.   Target_angle,
  5.   Dist,
  6.   Angle : Integer;
  7.   Target_Found : Boolean;
  8.   point : Integer;
  9.  
  10. Procedure Rotate;
  11. Begin
  12.    If Point=1 Then Angle:=Angle_to(550,500)
  13.    Else If Point=2 Then Angle:=Angle_to(500,550)
  14.    Else If Point=3 Then Angle:=Angle_to(450,500)
  15.    Else If Point=4 Then Angle:=Angle_to(500,450);
  16.    Point:=Random(4)+1;
  17.   Drive(Angle,50);
  18. End;
  19.  
  20.  
  21. Procedure Go_Center;
  22. Begin
  23.   Repeat
  24.     Angle:=Angle_to(500,500);
  25.     Drive(Angle,50);
  26.   Until ((Loc_X>450) and (Loc_X<550) And
  27.       (Loc_Y>450) and (Loc_Y<550));
  28. End;
  29.  
  30. Procedure Scan_for;
  31. Var
  32.   Temp,
  33.   Junk : Integer;
  34. Begin
  35.   If Target_angle=(500) then Begin
  36.       For Junk:=1 to 360 do
  37.        Begin
  38.          Temp:=Scan(Junk,3);
  39.           If Not(Temp=Scan(Junk,5)) then Begin
  40.                        Target_Found:=true;
  41.                        Temp:=Target_angle;
  42.                        Target_Angle:=(Junk);
  43.                        Junk:=(Temp);
  44.                       End;
  45.           End
  46.     End
  47.    Else Begin
  48.           For Junk:=(Target_angle-45) to (Target_angle+45) do
  49.            If Junk<0 then Begin
  50.                             Temp:=Scan((360+Junk),3);
  51.                             If (Temp=Scan((360+Junk),5)) then Begin
  52.                                 Target_Found:=true;
  53.                                 Temp:=Target_angle;
  54.                                 Target_Angle:=(360+Junk);
  55.                                 Junk:=Temp+45;
  56.                               End;
  57.                            End
  58.               Else Begin
  59.                    Temp:=Scan(Junk,3);
  60.                    If (Temp=Scan(Junk,5)) then Begin
  61.                                 Target_Found:=true;
  62.                                 Temp:=Target_angle;
  63.                                 Target_Angle:=Junk;
  64.                                 Junk:=(Temp+45);
  65.                               End;
  66.                      End
  67.     End;
  68. End;
  69.  
  70. Begin
  71.   Target_angle:=500;
  72.   Go_Center;
  73.   Point:=1;
  74.   Repeat
  75.     Target_Found:=False;
  76.     Rotate;
  77.     Scan_For;
  78.     Dist:=Scan(Target_Angle,10);
  79.     If Dist>40 then Begin
  80.                       Cannon(Target_angle,Dist);
  81.                       Cannon(Target_angle,Dist);
  82.                       Cannon(Target_angle,Dist);
  83.                     End;
  84.     If Not Target_Found Then Target_Angle:=500;
  85.     If Target_Angle=500 then Go_Center;
  86.   Until Winner or Dead;
  87. End;
  88.  
  89.